Mutation operators for testing Android apps
نویسندگان
چکیده
Context: Due to the widespread use of Android devices, Android applications (apps) have more releases, purchases, and downloads than apps for any other mobile devices. The sheer volume of code in these apps creates significant concerns about the quality of the software. However, testing Android apps is different from testing traditional Java programs due to the unique program structure and new features of apps. Simple testing coverage criteria such as statement coverage are insufficient to assure high quality of Android apps. While researchers show significant interest in finding better Android testing approaches, there is still a lack of effective and usable techniques to evaluate their proposed test selection strategies, and to ensure a reasonable number of effective tests. Objective: As mutation analysis has been found to be an effective way to design tests in other software domains, we hypothesize that it is also a viable solution for Android apps. Method: This paper proposes an innovative mutation analysis approach that is specific for Android apps. We define mutation operators specific to the characteristics of Android apps, such as the extensive use of XML files to specify layout and behavior, the inherent event-driven nature, and the unique Activity lifecycle structure. We also report on an empirical study to evaluate these mutation operators. Results: We have built a tool that uses the novel Android mutation operators to mutate the source code of Android apps, then generates mutants that can be installed and run on Android devices. We evaluated the effectiveness of Android mutation testing through an empirical study on real-world apps. This ∗Corresponding author. Preprint submitted to Information and Software Technology April 20, 2016 paper introduces several novel mutation operators based on a fault study of Android apps, presents a significant empirical study with real-world apps, and provides conclusions based on an analysis of the results. Conclusion: The results show that the novel Android mutation operators provide comprehensive testing for Android apps. Additionally, as applying mutation testing to Android apps is still at a preliminary stage, we identify challenges, possibilities, and future research directions to make mutation analysis for mobile apps more effective and efficient.
منابع مشابه
MDroid+: A Mutation Testing Framework for Android
Mutation testing has shown great promise in assessing the effectiveness of test suites while exhibiting additional applications to test-case generation, selection, and prioritization. Traditional mutation testing typically utilizes a set of simple language specific source code transformations, called operators, to introduce faults. However, empirical studies have shown that for mutation testing...
متن کاملAn Energy-Aware Mutation Testing Framework for Android
The rising popularity of mobile apps deployed on battery-constrained devices underlines the need for effectively evaluating their energy properties. However, currently there is a lack of testing tools for evaluating the energy properties of apps. As a result, for energy testing, developers are relying on tests intended for evaluating the functional correctness of apps. Such tests may not be ade...
متن کاملOn the Effectiveness of Random Testing for Android
Random testing of Android apps is attractive due to ease-of-use and scalability, but its effectiveness could be questioned. Prior studies have shown that Monkey – a simple approach and tool for random testing of Android apps – is surprisingly effective, “beating” much more sophisticated tools by achieving higher coverage. We study how Monkey’s parameters affect code coverage (at class, method, ...
متن کاملMobileMonkey - A Contextual Stress Testing Framework for Android Application
Development of Android Apps is inherently challenging as difficulties arise in tracing bugs and crashes due to GUI based event driven work flow, contextual scenarios and diversified sources of inputs working together. In order to alleviate developer’s challenges in this regard, a state of the art contextual stress testing framework of Android apps named MobileMonkey is proposed. This framework ...
متن کاملDesigning an Android Continuous Delivery pipeline
Mobile applications (apps) are increasingly popular and run on a wide range of different operating systems and devices. Fragmentation is one of the differences between mobile apps and webor desktop based applications and presents a challenge in delivering high quality apps. Automated testing can help to overcome it. This paper presents a case study on designing a continuous delivery pipeline fo...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Information & Software Technology
دوره 81 شماره
صفحات -
تاریخ انتشار 2017